/**
 * Copyright &copy; 2012-2016 <a href="https://git.oschina.net/zdw2016/webbase5">Webbase</a> All rights reserved.
 */
package com.foreveross.webbase.projectdemo.entity;

import java.util.Date;
import java.util.List;

import org.hibernate.validator.constraints.Length;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.foreveross.webbase.common.persistence.DataEntity;
import com.google.common.collect.Lists;

/**
 * 项目管理Entity
 * 
 * @author yangwanli
 * @version 2017-03-15
 */
public class Projectapply extends DataEntity<Projectapply> {

	private static final long serialVersionUID = 1L;
	private String name; // 项目名称
	private String abbreviation; // 项目英文名缩写
	private String manager; // 项目经理
	private List<String> typeList = Lists.newArrayList(); // 服务器类型集合
	private List<String> typeidList = Lists.newArrayList(); // 服务器类型id集合
	private Date starttime; // 开始时间
	private Date endtime; // 结束时间
	private String describe; // 项目描述
	private String status; // 状态
	private String serverinformationId; // 审核信息说明
	private String userid;// 用户id

	public String getUserid() {
		return userid;
	}

	public void setUserid(String userid) {
		this.userid = userid;
	}

	@JsonIgnore
	public List<String> getTypeidList() {
		return typeidList;
	}

	@JsonIgnore
	public void setTypeidList(List<String> typeidList) {
		this.typeidList = typeidList;
	}

	@JsonIgnore
	public List<String> getTypeList() {
		return typeList;
	}

	public String getServerinformationId() {
		return serverinformationId;
	}

	public void setServerinformationId(String serverinformationId) {
		this.serverinformationId = serverinformationId;
	}

	@JsonIgnore
	public void setTypeList(List<String> typeList) {
		this.typeList = typeList;
	}

	private String approval; // 审核信息

	public Projectapply() {
		super();
	}

	public Projectapply(String id) {
		super(id);
	}

	@Length(min = 0, max = 32, message = "项目名称长度必须介于 0 和 32 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Length(min = 0, max = 32, message = "项目英文名缩写长度必须介于 0 和 32 之间")
	public String getAbbreviation() {
		return abbreviation;
	}

	public void setAbbreviation(String abbreviation) {
		this.abbreviation = abbreviation;
	}

	@Length(min = 0, max = 32, message = "项目经理长度必须介于 0 和 32 之间")
	public String getManager() {
		return manager;
	}

	public void setManager(String manager) {
		this.manager = manager;
	}

	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getStarttime() {
		return starttime;
	}

	public void setStarttime(Date starttime) {
		this.starttime = starttime;
	}

	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getEndtime() {
		return endtime;
	}

	public void setEndtime(Date endtime) {
		this.endtime = endtime;
	}

	@Length(min = 0, max = 1000, message = "项目描述长度必须介于 0 和 1000 之间")
	public String getDescribe() {
		return describe;
	}

	public void setDescribe(String describe) {
		this.describe = describe;
	}

	@Length(min = 0, max = 32, message = "状态长度必须介于 0 和 32 之间")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	@Length(min = 0, max = 255, message = "审核信息长度必须介于 0 和 255 之间")
	public String getApproval() {
		return approval;
	}

	public void setApproval(String approval) {
		this.approval = approval;
	}

}